import { defineStore } from 'pinia'
import { ref } from 'vue'
import { getUserListApi, postUserApi, putUserApi, deleteUserApi } from '@/apis/admin/userman/index.js'
export const useUserManStore = defineStore('UserMan', () => {
  // 获取用户列表 搜索用户
  const getUserList = async (params) => {
    const copyParams = { ...params }
    if (copyParams.total) delete copyParams.total // 不需要携带total

    return await getUserListApi(copyParams)
  }
  // 添加用户
  const postUser = async (params) => {
    return await postUserApi(params)
  }
  // 修改用户
  const putUser = async (params) => {
    const copyParams = { ...params } // 创建 params 的一个浅拷贝,避免直接修改password导致原表单默认值失效
    if (copyParams.password) delete copyParams.password // 在拷贝上删除password属性
    return await putUserApi(copyParams)
  }
  // 删除用户
  const deleteUser = async (params) => {
    let userIds
    // 检查params是一个对象还是一个对象数组
    if (Array.isArray(params)) {
      // 如果params是一个数组，提取所有对象的userId到一个新的数组中
      userIds = params.map((item) => item.userId)
    } else {
      // 如果params是一个单独的对象，直接使用其userId构造一个数组
      userIds = [params.userId]
    }
    console.log(userIds)
    return await deleteUserApi(userIds)
  }
  // 暴露出的数据
  return {
    getUserList,
    postUser,
    putUser,
    deleteUser
  }
})
